package com.sa.token.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sa.token.dto.request.role.*;
import com.sa.token.entity.SysRoleEntity;
import com.sa.token.message.StandardResponse;

import javax.servlet.http.HttpServletRequest;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author xhs
 * @since 2021-08-27
 */
public interface SysRoleService extends IService<SysRoleEntity> {

    /**
     * 查询角色接口
     *
     * @param rolePageRequest
     * @return
     */
    StandardResponse selectRole(RolePageRequest rolePageRequest);

    /**
     * 新增角色接口
     *
     * @param request
     * @param roleRequest
     * @return
     */
    StandardResponse insertRole(HttpServletRequest request, InsertRoleRequest roleRequest);

    /**
     * 删除角色接口
     *
     * @param request
     * @param delRoleRequest
     * @return
     */
    StandardResponse delRole(HttpServletRequest request, DelRoleRequest delRoleRequest);

    /**
     * 编辑角色接口
     *
     * @param request
     * @param updateRoleRequest
     * @return
     */
    StandardResponse updateRole(HttpServletRequest request, UpdateRoleRequest updateRoleRequest);

    /**
     * 根据id查询角色接口
     *
     * @param request
     * @param delRoleRequest
     * @return
     */
    StandardResponse getRoleById(HttpServletRequest request, DelRoleRequest delRoleRequest);

    /**
     * 根据角色Id查询权限接口
     *
     * @param permissionsRequest
     * @return
     */
    StandardResponse getPermissions(SelectPermissionsRequest permissionsRequest);

    /**
     * 分配权限
     *
     * @param permissionsRequest
     * @return
     */
    StandardResponse addPermissions(AssignPermissionRequest permissionsRequest);

    /**
     * 查询角色列表
     *
     * @return
     */
    StandardResponse getRole();

    /**
     * 根据用户ID查询角色列表
     *
     * @param queryRoleRequest
     * @return
     */
    StandardResponse getRoleByUserId(QueryRoleRequest queryRoleRequest);
}
